1. Technical Field
Implementations relate to the transmission of encoded data over a communication network.
2. Background Art
Mobile computing devices, such as smartphones, tablet computers, netbook computers, laptop computers, and the like, exchange data with servers and other computers over communication networks in order to provide access to a wide variety of applications regardless of the users' location. A mobile computing device typically establishes a wireless connection with a nearby wireless access point. Data can then be transmitted via the wireless network connection to a target node.
Mobile computing devices may have the capability to connect to one or more networks. For example, a mobile computing device can have separate interfaces for a third generation cellular network (3G network), an IEEE 802.11 wireless data network (WIFI network), a Bluetooth network, and an Ethernet. At any instant, the mobile computing device can be connected to one or more reachable networks, and may be sending or receiving data over those networks. However, each of these networks and/or each of the mobile computing device's network interfaces may have different bandwidth capabilities. For example, the bandwidth available to a node in a WIFI network can differ based on the network access point, the distance from the network access point to the mobile node, and other factors. The bandwidth of the network is a key factor in determining the rate at which data is to be transmitted over that network.
Mobile computing devices with multiple network interfaces typically have a prioritized preference ordering for the networks that are reachable, and can select a network for an application based upon the predetermined preference ordering. Applications are typically configured to transmit data at a rate corresponding to a notional bandwidth for the respective type of network. For example, a voice codec may be configured to transmit encoded voice data at different rates depending on the network interface that is active at the time. Applications such as voice coding are bandwidth sensitive, i.e., the quality or fidelity of the voice that can be recovered from the encoded voice can decrease when the encoding is configured to correspond to lower bandwidth. Therefore, a voice codec configured to transmit at a predetermined rate for WIFI, may not be able to utilize the full bandwidth available in various WIFI networks.